﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CPS1
{
    // reprezentacja dyskretnego sygnału wczytanego z pliku
    public class DiscreetSignal : Signal
    {
        // konsruktor od razu pobiera wartości sygnału //dorzucam A ale nie wien czy to dobry pomysl
        public DiscreetSignal(String name, Double A, Double t1, Double f, Double[,] calculatedValues) 
        { 
            this.periodical = false;
            this.discrete = true; 
            this.name = name;
            this.A = A; // nie znamy amplitudy
            this.t1 = t1;
            this.d = (calculatedValues.Length / 2) / f; // obliczamy z próbkowania i ilości próbek
            this.f = f;
            this.calculatedValues = new Double[calculatedValues.Length / 2, 2];

            // kopiujemy wartości sygnału
            for (int i = 0; i < calculatedValues.Length / 2; i++)
            {
                for (int j = 0; j < 2; j++)
                {
                    this.calculatedValues[i, j] = calculatedValues[i, j];
                }
            }
        }

        override public Double value(Double t)
        {
            return 0.0; // niepotrzebne jest obliczanie tej funkcji od t bo zawsze operujemy na calculatedValuesp
        }

        public override Signal copy()//dorzucam amplitude
        {
            return new DiscreetSignal(this.name, this.A, this.t1, this.f, this.calculatedValues);
        }
    }
}
